#import "Square.h"

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    Square *mySquare = [[Square alloc] init];

    // isMemberOf:

    if ( [mySquare isMemberOfClass: [Square class]] == YES )
        NSLog (@"mySquare jest skadow klasy Square");

    if ( [mySquare isMemberOfClass: [Rectangle class]] == YES )
        NSLog (@"mySquare jest skadow klasy Rectangle");

    if ( [mySquare isMemberOfClass: [NSObject class]] == YES )
        NSLog (@"mySquare jest skadow klasy NSObject");

    // isKindOf:

    if ( [mySquare isKindOfClass: [Square class]] == YES )
        NSLog (@"mySquare jest obiektem typu Square");

    if ( [mySquare isKindOfClass: [Rectangle class]] == YES )
        NSLog (@"mySquare jest obiektem typu Rectangle");

    if ( [mySquare isKindOfClass: [NSObject class]] == YES )
        NSLog (@"mySquare jest obiektem typu NSObject");

    // respondsTo:

    if ( [mySquare respondsToSelector: @selector (setSide:)] == YES )
        NSLog (@"mySquare reaguje na metod setSide: ");

    if ( [mySquare respondsToSelector: @selector (setWidth:andHeight:)] == YES )
        NSLog (@"mySquare reaguje na metod setWidth:andHeight:");

    if ( [Square respondsToSelector: @selector (alloc)] == YES )
        NSLog (@"Klasa Square reaguje na metod alloc");

    // instancesRespondTo:

    if ([Rectangle instancesRespondToSelector: @selector (setSide:)] == YES)
        NSLog (@"Egzemplarze klasy Rectangle reaguj na metod setSide:");

    if ([Square instancesRespondToSelector: @selector (setSide:)] == YES)
        NSLog (@"Egzemplarze klasy Square reaguj na metod setSide:");

    if ([Square isSubclassOfClass: [Rectangle class]] == YES)
        NSLog (@"Square jest podklas prostokta ");

    [mySquare release];

    [pool drain];
    return 0;
}